using Common.Communal;
using MediatR;
using Product.API.ISerivces.DTOS;

namespace Product.API.Write.Applications.Commands.Bom
{
    /// <summary>
    /// Bom修改命令
    /// </summary>
    public class UpdateBomCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// BOM编号（GUID）
        /// </summary>
        public Guid BomNumber { get; set; }

        /// <summary>
        /// 是否默认BOM
        /// </summary>
        public bool IsDefaultBom { get; set; }

        /// <summary>
        /// BOM版本
        /// </summary>
        public string BomVersion { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 产品编号
        /// </summary>
        public Guid? ProductNumber { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public string Unit { get; set; }

        /// <summary>
        /// 日产量
        /// </summary>
        public int? DailyOutput { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }

        /// <summary>
        /// 绑定工艺路线(外键)
        /// </summary>
        public Guid? ProcessRouteNumber { get; set; }

        /// <summary>
        /// 逻辑删除
        /// </summary>
        public bool? IsDelete { get; set; } = false;

        /// <summary>
        /// 序号（工艺工序序号）
        /// </summary>
        public string SerialNumber { get; set; }

        /// <summary>
        /// 物料结构批量修改
        /// </summary>
        public List<BatchUpdateMaterialStructuerDTO> batchUpdateMaterialStructuer { get; set; }

        /// <summary>
        /// 产品用料批量修改（沿用序号SerialNumber）
        /// </summary>
        public List<BatchUpdateProductMaterialDTO> batchUpdateProductMaterial { get; set; }
    }
}


